When an end-user interacts with an enterprise-wide business application, multiple computers, databases, networks, and/or devices are often involved. Thus, along the path of information consumption and processing, there are usually several different layers of software.
While enterprise applications are often structured to optimize data for consistency, integrity, compliance, and operations, end-users usually expect structures that are more closely related to the real world and the work environment they inhabit. The resulting gap between information consumers and information providers often leads to poor usability and expensive software application integration projects.